package reflect;


import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

/**
 * 利用反射机制调用Person类里所有无参方法调用一遍
 * 获取Person类对象
 * 获取Person类中的所有公开方法
 * 判断每一个方法 利用Method对象
 * 是否为公开方法
 * 是否无参
 * 如果满足上述条件按则调用该方法，invoke
 */
public class Test {
    public static void main(String[] args) throws Exception {
        Class cls=Class.forName("reflect.Person");
        Object obj=cls.newInstance();
        Method[] methods=cls.getMethods();
        for(Method method:methods){
            if(
                    method.getParameterCount()==0
                    &&
                    method.getModifiers()== Modifier.PUBLIC

            ){
                System.out.println("正在调用"+method.getName()+"方法...");
                method.invoke(obj);
            }
        }
    }
}



